import React from "react";
// 导入 connect
import { connect } from "react-redux";

class ComA extends React.Component {
  handleClickadd = () => {
    this.props.add_count()
  }
  handleClicksub = () => {
    this.props.sub_count()
  }
  render() {
    return (
      <div>
        <h1>我是组件ComA</h1>
        <button onClick={this.handleClickadd}> + </button>
        <button onClick={this.handleClicksub}> - </button>
      </div>
    )
  }
}

// 这个函数要有一个返回值，返回值是一个对象
const mapDispatchToProps = (dispatch) => {
  return {

    add_count: () => {
      // 利用dispatch发送一个action
      // 传递action对象，我们要定义一个type属性
      dispatch({
        type: 'add_count'
      })
    },
    sub_count: () => {
      dispatch({
        type: 'sub_count'
      })
    }
  }
}
// A是发送方，所以要实现connect  第二个参数
export default connect(null, mapDispatchToProps)(ComA)
// ComA发送action
// 1.导入connect
// 2.利用connect对数组进行加强
//   connect(要接收数组的函数, 要发送action的函数)(放入要加强的组件)
// 3.需要实现connect第二个参数，构建一个函数mapDispatchToProps(dispatch)
//   dispatch: 就是用来发送给action的
// 4.在这个函数里面就可以返回一个对象
//     key是方法名
//     value: 调用dispatch去发送action
// 5.在组件的内容就可以通过this.props来拿到这个方法
